package com.tomcov.client;

import com.google.gwt.event.shared.EventBus;
import com.google.gwt.place.shared.PlaceController;
import com.tomcov.client.service.JourneyPassengerServiceAsync;
import com.tomcov.client.service.JourneyServiceAsync;
import com.tomcov.client.service.MapServiceAsync;
import com.tomcov.client.service.MessageServiceAsync;
import com.tomcov.client.service.UserServiceAsync;
import com.tomcov.client.view.CreatUserView;
import com.tomcov.client.view.HeaderView;
import com.tomcov.client.view.I18nView;
import com.tomcov.client.view.LicenceView;
import com.tomcov.client.view.MapView;
import com.tomcov.client.view.MessageInView;
import com.tomcov.client.view.MessageOutView;
import com.tomcov.client.view.MyJourneyView;
import com.tomcov.client.view.NewMessageView;
import com.tomcov.client.view.SettingsView;
import com.tomcov.client.view.WelcomView;

// TODO: Auto-generated Javadoc
/**
 * A factory for creating Client objects.
 */
public interface ClientFactory {
	
	/**
	 * Gets the jSA.
	 *
	 * @return the jSA
	 */
	JourneyServiceAsync getJSA();
	
	/**
	 * Gets the jPSA.
	 *
	 * @return the jPSA
	 */
	JourneyPassengerServiceAsync getJPSA();
	
	/**
	 * Gets the uSA.
	 *
	 * @return the uSA
	 */
	UserServiceAsync getUSA();
	
	/**
	 * Gets the event bus.
	 *
	 * @return the event bus
	 */
	EventBus getEventBus();
    
    /**
     * Gets the place controller.
     *
     * @return the place controller
     */
    PlaceController getPlaceController();
    
    /**
     * Gets the welcom view.
     *
     * @return the welcom view
     */
    WelcomView getWelcomView();
	
	/**
	 * Gets the i18n view.
	 *
	 * @return the i18n view
	 */
	I18nView getI18nView();
	
	/**
	 * Gets the licence view.
	 *
	 * @return the licence view
	 */
	LicenceView getLicenceView();
	
	/**
	 * Gets the creat user view.
	 *
	 * @return the creat user view
	 */
	CreatUserView getCreatUserView();
	
	/**
	 * Gets the map view.
	 *
	 * @return the map view
	 */
	MapView getMapView();
	
	/**
	 * Gets the message out view.
	 *
	 * @return the message out view
	 */
	MessageOutView getMessageOutView();
	
	/**
	 * Gets the settings view.
	 *
	 * @return the settings view
	 */
	SettingsView getSettingsView();
	
	/**
	 * Gets the message in view.
	 *
	 * @return the message in view
	 */
	MessageInView getMessageInView();
	
	/**
	 * Gets the mSA.
	 *
	 * @return the mSA
	 */
	MessageServiceAsync getMSA();
	
	/**
	 * Gets the new message view.
	 *
	 * @return the new message view
	 */
	NewMessageView getNewMessageView();
	
	/**
	 * Gets the my journey view.
	 *
	 * @return the my journey view
	 */
	MyJourneyView getMyJourneyView();
	
	/**
	 * Gets the header view.
	 *
	 * @return the header view
	 */
	HeaderView getHeaderView();
	
	/**
	 * Gets the map sa.
	 *
	 * @return the map sa
	 */
	MapServiceAsync getMapSA();

}
